#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <string.h>

/**
标准输出重定向 （File *）
1. 正常输出重定向到log.txt
2. 错误输出重定向到error.txt
 */
int main(int argc, char const *argv[])
{
   //关闭标准输出和标准错误输出
   close(STDOUT_FILENO);
   close(STDERR_FILENO);

   open("log.txt", O_RDWR | O_CREAT | O_APPEND, 0644);
   open("error.txt", O_RDWR | O_CREAT | O_APPEND, 0644);
   // 利用标准输入stdin读取终端输入
   char input_name[10];
   fgets(input_name, 10, stdin);
   printf("stdin输入内容: %s", input_name);
   // 利用标准输出stdout向终端输出
   fputs("stdout输出内容\n", stdout);
   // 利用标准错误输出stderr向终端输出
   fputs("stderr输出内容 \n", stderr);
   // 利用STDIN_FILENO读取终端输入
   char input_name2[10];
   ssize_t size = read(STDIN_FILENO, input_name2, 10);
   printf("STDIN_FILENO输入内容: %s", input_name2);
   // 利用STDOUT_FILENO向终端输出
   char *str = "STDOUT_FILENO输出内容\n";
   write(STDOUT_FILENO, str, strlen(str));
   // 利用STDERR_FILENO向终端输出
   char *str2 = "STDERR_FILENO输出内容\n";
   write(STDERR_FILENO, str2, strlen(str2));
   return 0;
}